// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'

// ============================== 导出表单结构树 ============================== //

export default {
  // —————————————————————————————— 公共覆盖 —————————————————————————————— //

  bind: { type: String, default: 'tree' }, // 绑定键名，触发 @change 事件

  // 如无 allId，则为 String 类型
  // 如有 allId，则为 Array 类型
  init: { type: [String, Array], default: undefined }, // 默认值

  // —————————————————————————————— 私有属性 —————————————————————————————— //

  dict: { type: Array, default: () => [] }, // 字典列表
  grayed: { type: Array, default: () => [] }, // 置灰列表

  initRoot: { type: Boolean, default: false }, // 是否默认选中根节点
  initFirst: { type: Boolean, default: false }, // 是否默认选中第一个叶子

  onlyLeaf: { type: Boolean, default: false }, // 是否只能选择叶子
  allId: { type: Boolean, default: false }, // 是否为全路径 ID 的数组 (如 bind 为数组，则各字段均为全路径数组)
  allName: { type: Boolean, default: false }, // 不是 allId 时，是否显示全路径名称 (如 bind 为数组，则名称存全路径字符串)
  and: { type: String, default: CORE.MAP.AND }, // 全路径名称的连接符号
  empty: { type: String, default: '暂无数据' }, // 字典为空时显示的文本

  hasCount: { type: Boolean, default: false }, // 是否显示子节点个数 (以小括号带数字的形式跟在名称后面)

  hasRight: { type: Boolean, default: false }, // 下拉项右侧有无辅助信息 (dict 需为 [chilren, id, name, other])
  rightIndex: { type: Number, default: 3 }, // 右侧辅助信息的字典下标 (必须大于等于 3)

  popClass: { type: String, default: '' }, // 弹出层样式类

  noSearch: { type: Boolean, default: false }, // 能否搜索
  clickExpand: { type: Boolean, default: false }, // 是否使用点击展开
}
